define
(    
    ["Common/ObjectUtilities"],
    function(ObjectUtilities)
    {
        return function(changeId)
        {
            var _shapes = {};

            this.changeId = changeId;

            this.addShape= function(changeId, shape)
            {
                shape.changeId = changeId;
                _shapes[changeId] = shape;
            };

            this.getShape = function(changeId)
            {
                return _shapes[changeId];
            };

            this.deleteShape = function(changeId)
            {
                delete _shapes[changeId];
            };

            this.toJSON = function()
            {
                return {changeId: changeId, shapes: ObjectUtilities.toArray(_shapes)};
            };
        };
    }
);